home *** CD-ROM | disk | FTP | other *** search
/ Champak 49 / Volume 49 - JOGO DISK .iso / Games / fetchstretch.swf / scripts / DefineSprite_238 / frame_90 / DoAction.as
Encoding:
Text File  |  2007-10-01  |  9.5 KB  |  353 lines

  1. cityfloor = function()
  2. {
  3.    r0 = new Array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
  4.    r1 = new Array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1);
  5.    r2 = new Array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1);
  6.    r3 = new Array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1);
  7.    r4 = new Array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1);
  8.    r5 = new Array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1);
  9.    r6 = new Array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1);
  10.    r7 = new Array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1);
  11.    r8 = new Array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1);
  12.    r9 = new Array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1);
  13.    r10 = new Array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1);
  14.    r11 = new Array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1);
  15.    r12 = new Array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1);
  16.    r13 = new Array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1);
  17.    r14 = new Array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1);
  18.    r15 = new Array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1);
  19.    r16 = new Array(1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1);
  20.    r17 = new Array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
  21. };
  22. rows = 18;
  23. cols = 18;
  24. floorStart_x = 350;
  25. floorStart_y = 190;
  26. tileWidth = 18;
  27. tileHeight = 9;
  28. showTiles = false;
  29. numberOfTiles = 0;
  30. depthOffset = 400;
  31. spritesCollected = 0;
  32. buildFloor = function()
  33. {
  34.    var _loc11_ = tileWidth;
  35.    var _loc10_ = tileHeight;
  36.    r = 0;
  37.    while(r < rows)
  38.    {
  39.       var _loc9_ = floorStart_x - r * _loc11_;
  40.       var _loc8_ = floorStart_y + r * _loc10_;
  41.       c = 0;
  42.       while(c < cols)
  43.       {
  44.          var _loc5_ = r * rows + 1 + c;
  45.          var _loc6_ = "tile" + _loc5_;
  46.          var _loc7_ = "floor" + _loc5_;
  47.          var _loc3_ = this["r" + r][c];
  48.          this[_loc6_] = {};
  49.          var _loc2_ = this[_loc6_];
  50.          _loc2_.depth = _loc5_;
  51.          _loc2_.x = _loc9_ + c * _loc11_;
  52.          _loc2_.y = _loc8_ + c * _loc10_;
  53.          _loc2_.row = r;
  54.          _loc2_.col = c;
  55.          _loc2_.free = true;
  56.          _loc2_.cont = false;
  57.          numberOfTiles++;
  58.          if(_loc3_.doorway == 2)
  59.          {
  60.             _loc2_.cont = true;
  61.             _loc2_.room = _loc3_.room;
  62.             _loc2_.doorTarget = _loc3_.targ;
  63.          }
  64.          if(_loc3_ == 1)
  65.          {
  66.             _loc2_.free = false;
  67.          }
  68.          if(showTiles)
  69.          {
  70.             duplicateMovieClip(floorTile_mc,_loc7_,16384 + (_loc5_ + 200));
  71.             var _loc4_ = this[_loc7_];
  72.             _loc4_._x = _loc2_.x;
  73.             _loc4_._y = _loc2_.y;
  74.             _loc4_.tileName = _loc2_.depth;
  75.             if(_loc3_ == 1)
  76.             {
  77.                _loc4_._visible = false;
  78.             }
  79.          }
  80.          c++;
  81.       }
  82.       r++;
  83.    }
  84. };
  85. cityfloor();
  86. buildFloor();
  87. setExpand = function()
  88. {
  89.    expandBlock = false;
  90.    while(!expandBlock)
  91.    {
  92.       var _loc3_ = Math.ceil(Math.random() * (numberOfTiles - 1));
  93.       var _loc4_ = _loc3_ * 20 + 2;
  94.       var _loc2_ = this["tile" + _loc3_];
  95.       if(_loc2_.free && !_loc2_.expand)
  96.       {
  97.          expandBlock = true;
  98.          _loc2_.expand = true;
  99.          collect_mc._x = _loc2_.x;
  100.          collect_mc._y = _loc2_.y;
  101.          collect_mc.swapDepths(_loc4_);
  102.          trace(_loc3_);
  103.       }
  104.    }
  105. };
  106. noOfCones = 0;
  107. placeCone = function()
  108. {
  109.    expandCone = false;
  110.    while(!expandCone)
  111.    {
  112.       var _loc3_ = Math.ceil(Math.random() * numberOfTiles);
  113.       var _loc6_ = _loc3_ * 20 + 3;
  114.       var _loc2_ = this["tile" + _loc3_];
  115.       if(_loc2_.free && !_loc2_.expand)
  116.       {
  117.          noOfCones++;
  118.          var _loc4_ = "cone" + noOfCones + "_mc";
  119.          expandCone = true;
  120.          _loc2_.free = false;
  121.          duplicateMovieClip(cone_mc,_loc4_,16384 + _loc6_);
  122.          var _loc5_ = this[_loc4_];
  123.          _loc5_._x = _loc2_.x;
  124.          _loc5_._y = _loc2_.y;
  125.          trace("CONE PLACED");
  126.       }
  127.    }
  128. };
  129. setExpand();
  130. char0 = {};
  131. char0.speed = 7;
  132. char0.speed_x = 0;
  133. char0.speed_y = 0;
  134. char0.dir = 1;
  135. char0.currentTile = 299;
  136. char0.nextTile = 298;
  137. steps = 0;
  138. difficulty = [5,10,15,20,25,30,35,40,45,50];
  139. coneSteps = 0;
  140. coneDiff = 5;
  141. gameOver = false;
  142. moveHead = function()
  143. {
  144.    currentTile = this["tile" + char0.nextTile];
  145.    char0_mc._x = currentTile.x;
  146.    char0_mc._y = currentTile.y;
  147.    var _loc3_ = nextTile();
  148.    var _loc4_ = this["tile" + _loc3_];
  149.    _loc4_.dir = snakeArray[0].dir;
  150.    checkSnakeCollision();
  151.    if(_loc4_.free)
  152.    {
  153.       if(currentTile.expand)
  154.       {
  155.          points += collectPoints;
  156.          yipee_snd.start();
  157.          spritesCollected++;
  158.          _root.collected = spritesCollected;
  159.          star_mc._x = collect_mc._x;
  160.          star_mc._y = collect_mc._y;
  161.          star_mc.gotoAndPlay(1);
  162.          coneSteps++;
  163.          if(coneSteps == coneDiff)
  164.          {
  165.             trace("RUNCONES");
  166.             placeCone();
  167.             coneSteps = 0;
  168.          }
  169.          setExpand();
  170.          buildSnake();
  171.          currentTile.expand = false;
  172.          if(char0.speed > 3)
  173.          {
  174.             d = 0;
  175.             while(d <= difficulty.length)
  176.             {
  177.                if(spritesCollected == difficulty[d])
  178.                {
  179.                   char0.speed--;
  180.                }
  181.                d++;
  182.             }
  183.          }
  184.       }
  185.       defineSnakePos();
  186.       var _loc6_ = _loc4_.x - this["tile" + snakeArray[0].nextTile].x;
  187.       var _loc5_ = _loc4_.y - this["tile" + snakeArray[0].nextTile].y;
  188.       snakeArray[0].speed_x = _loc6_ / snakeArray[0].speed;
  189.       snakeArray[0].speed_y = _loc5_ / snakeArray[0].speed;
  190.       currentTile.nextTile = _loc3_;
  191.       snakeArray[0].prevTile = char0.nextTile;
  192.       snakeArray[0].nextTile = _loc3_;
  193.       char0_mc.swapDepths(_loc3_ * 20 + 1);
  194.       steps = snakeArray[0].speed;
  195.    }
  196.    else
  197.    {
  198.       _root.gameOver_mc.gotoAndPlay(2);
  199.       trace("GAMEOVER START AGAIN");
  200.       char0.speed_x = 0;
  201.       char0.speed_y = 0;
  202.       gameOver = true;
  203.       delete this.onEnterFrame;
  204.    }
  205. };
  206. snakeArray = new Array(char0);
  207. snakeLength = 1;
  208. buildSnake = function()
  209. {
  210.    var _loc4_ = "char" + snakeLength + "_mc";
  211.    var _loc2_ = snakeArray[snakeLength - 1];
  212.    duplicateMovieClip(char0_mc,_loc4_,16384 + (_loc2_.prevTile * 20 + 1));
  213.    var _loc5_ = this[_loc4_];
  214.    _loc5_._x = this["tile" + _loc2_.tile].x;
  215.    _loc5_._y = this["tile" + _loc2_.tile].y;
  216.    this["char" + snakeLength] = {};
  217.    var _loc3_ = this["char" + snakeLength];
  218.    _loc3_.speed_x = _loc2_.speed_x;
  219.    _loc3_.speed_y = _loc2_.speed_y;
  220.    _loc3_.nextTile = _loc2_.prevTile;
  221.    snakeArray.push(_loc3_);
  222.    trace(snakeArray);
  223.    snakeLength++;
  224. };
  225. buildSnake();
  226. moveSnake = function()
  227. {
  228.    i = 0;
  229.    while(i <= snakeLength)
  230.    {
  231.       this["char" + i + "_mc"]._x += snakeArray[i].speed_x;
  232.       this["char" + i + "_mc"]._y += snakeArray[i].speed_y;
  233.       i++;
  234.    }
  235. };
  236. snakeDIR = ["","forward","right","back","left"];
  237. defineSnakePos = function()
  238. {
  239.    i = snakeLength;
  240.    while(i > 0)
  241.    {
  242.       var _loc2_ = snakeArray[i];
  243.       var _loc4_ = this["tile" + _loc2_.nextTile];
  244.       this["char" + i + "_mc"]._x = _loc4_.x;
  245.       this["char" + i + "_mc"]._y = _loc4_.y;
  246.       _loc2_.speed_x = snakeArray[i - 1].speed_x;
  247.       _loc2_.speed_y = snakeArray[i - 1].speed_y;
  248.       _loc2_.nextTile = snakeArray[i - 1].nextTile;
  249.       _loc2_.prevTile = snakeArray[i - 1].prevTile;
  250.       var _loc5_ = this["tile" + _loc2_.nextTile];
  251.       _loc2_.dir = _loc5_.dir;
  252.       this["char" + i + "_mc"].swapDepths(_loc2_.nextTile * 20 + 1);
  253.       if(i == snakeLength - 1)
  254.       {
  255.          this["char" + i + "_mc"].gotoAndStop("back");
  256.       }
  257.       else if(!this["char" + i + "_mc"].setFrame)
  258.       {
  259.          this["char" + i + "_mc"].gotoAndPlay("middle");
  260.       }
  261.       else
  262.       {
  263.          this["char" + i + "_mc"].play();
  264.       }
  265.       this["char" + i + "_mc"].clip_mc.gotoAndStop(snakeDIR[_loc2_.dir]);
  266.       i--;
  267.    }
  268.    i = 0;
  269.    while(i < snakeLength)
  270.    {
  271.       _loc2_ = snakeArray[i];
  272.       _loc4_ = this["tile" + _loc2_.prevTile];
  273.       var _loc3_ = this["tile" + _loc2_.nextTile];
  274.       _loc4_.free = true;
  275.       _loc3_.free = false;
  276.       i++;
  277.    }
  278. };
  279. moveChar = function()
  280. {
  281.    if(Key.isDown)
  282.    {
  283.       keyControl();
  284.    }
  285.    if(steps == 0)
  286.    {
  287.       moveHead();
  288.    }
  289.    if(!gameOver)
  290.    {
  291.       moveSnake();
  292.    }
  293.    steps--;
  294. };
  295. keyControl = function()
  296. {
  297.    if(Key.isDown(37) && !KeyIsDown)
  298.    {
  299.       snakeArray[0].dir = snakeArray[0].currentDIR - 1;
  300.       if(snakeArray[0].dir == 0)
  301.       {
  302.          snakeArray[0].dir = 4;
  303.       }
  304.       KeyIsDown = true;
  305.    }
  306.    if(Key.isDown(39) && !KeyIsDown)
  307.    {
  308.       snakeArray[0].dir = snakeArray[0].currentDIR + 1;
  309.       if(snakeArray[0].dir == 5)
  310.       {
  311.          snakeArray[0].dir = 1;
  312.       }
  313.       KeyIsDown = true;
  314.    }
  315.    if(!Key.isDown(39) && !Key.isDown(37) && KeyIsDown)
  316.    {
  317.       KeyIsDown = false;
  318.    }
  319. };
  320. nextTile = function()
  321. {
  322.    var _loc2_ = this["tile" + char0.nextTile].row;
  323.    var _loc3_ = this["tile" + char0.nextTile].col;
  324.    if(snakeArray[0].dir == 1)
  325.    {
  326.       var _loc4_ = (_loc2_ - 1) * rows + 1 + _loc3_;
  327.    }
  328.    if(snakeArray[0].dir == 3)
  329.    {
  330.       _loc4_ = (_loc2_ + 1) * rows + 1 + _loc3_;
  331.    }
  332.    if(snakeArray[0].dir == 4)
  333.    {
  334.       _loc4_ = char0.nextTile - 1;
  335.    }
  336.    if(snakeArray[0].dir == 2)
  337.    {
  338.       _loc4_ = char0.nextTile + 1;
  339.    }
  340.    char0_mc.clip_mc.gotoAndStop(snakeDIR[snakeArray[0].dir]);
  341.    snakeArray[0].currentDIR = snakeArray[0].dir;
  342.    return _loc4_;
  343. };
  344. collectPoints = 100;
  345. points = 0;
  346. yipee_snd = new Sound();
  347. yipee_snd.attachSound("yippee");
  348. this.onEnterFrame = function()
  349. {
  350.    moveChar();
  351. };
  352. stop();
  353.